'use strict';

const yjxUserUtil = require('../yjx/v1/util/userUtil');
const userCenterServiceUtil = require('./serviceUtil/userCenterServiceUtil');

const userCenterService = {};

/**
 * 用户实名认证, 绑定身份证号码
 *
 * @author 王俊
 * @date 2018-07-18
 *
 * @warning 此功能应由用户中心服务提供, 现考虑迁移成本, 先依赖原一键秀userUtil 实现的方法 (add by wangjun 2017-07-18)
 *
 * @param {Object} option 请求参数
 * @param {Number} option.device            设备标识
 * @param {Number} option.userId            用户唯一标识
 * @param {String} option.realName          用户真实姓名
 * @param {String} option.idCardNum         身份证号码
 * @param {String} [option.idCardThumbs]
 * @param {Function} callback 回调函数
 *                      error: 绑定失败原因
 */
userCenterService.bindIdCard = function (option, callback) {
    return yjxUserUtil.updateUserIdCardInfo_app_v2_1(option.userId, option.realName, option.idCardNum, option.idCardThumbs, callback);
};


/**
 * 用户申请提现
 *
 * @author 王俊
 * @date 2018-07-18
 *
 * @warning 此功能应由用户中心服务提供, 现考虑迁移成本, 先依赖原一键秀userUtil 实现的方法 (add by wangjun 2017-07-18)
 *
 *
 * @param {Object} option 请求参数
 * @param {Number} option.device            设备标识
 * @param {Number} option.userId            用户唯一标识
 * @param {Number} option.cashAmount        申请提现金额, 单位: 分, 最小值: 1
 * @param {String} option.account           提现账户, 支付宝账户, 或者微信对应平台的 openId
 * @param {Number} option.accountPlatform   账户类型, 提现平台, 10 微信, 20 支付宝
 * @param {Function} callback 回调函数
 *                      error: 失败原因
 */
userCenterService.applyCashReward = function (option, callback) {
    return yjxUserUtil.applyCashReward_v1_7(option.device,option.userId, option.cashAmount, option.account, option.accountPlatform, callback);
};

/**
 * 获取用户信息
 *
 * @author 王俊
 * @date 2018-07-18
 *
 * @warning 此功能应由用户中心服务提供, 现考虑迁移成本, 先依赖原一键秀userUtil 实现的方法 (add by wangjun 2017-07-18)
 *
 * @param {Object} option 请求参数
 * @param {Number} option.device            设备标识
 * @param {Number} option.userId            用户唯一标识
 * @param {Number} option.withOrganization  是否获取用户组织信息
 * @param {String} option.withReward        是否获取用户收益信息
 * @param {Number} option.withWallet        是否获取用户秀米钱包信息
 * @param {Function} callback 回调函数
 *                      error: 失败原因
 */
userCenterService.getUserInfo = function (option, callback) {
    userCenterServiceUtil.getUserInfo(option, callback);
};

/**
 * 用户获取收益信息
 *
 * @author 王俊
 * @date 2018-07-18
 *
 * @warning 此功能应由用户中心服务提供, 现考虑迁移成本, 先依赖原一键秀userUtil 实现的方法 (add by wangjun 2017-07-18)
 *
 * @param {Object} option 请求参数
 * @param {Number} option.device            设备标识
 * @param {Number} option.userId            用户唯一标识
 * @param {Function} callback 回调函数
 *                      error: 失败原因
 */
userCenterService.getUserActRewardInfo = function (option, callback) {
    return userCenterServiceUtil.getUserRewardInfo(option, callback);
};

/**
 * 获取用户收益明细
 *
 * @author 毛凯
 * @date 2018-07-20
 *
 *
 * @param {Object} option 请求参数
 * @param {Number} option.device            设备标识
 * @param {Number} option.userId            用户唯一标识
 * @param {Number} option.pageNum  是否获取用户组织信息
 * @param {String} option.pageSize        是否获取用户收益信息
 * @param {Number} option.withTotalPage        是否获取用户秀米钱包信息
 * @param {Function} callback 回调函数
 *                      error: 失败原因
 */
userCenterService.getUserActRewardDetail = function (option, callback) {

    userCenterServiceUtil.getUserActRewardDetail(option, callback);
};



/**
 * uc-获取用户私有码
 *
 * @author 毛凯
 * @date 2018-07-20
 *
 *
 * @param {Object} option 请求参数
 * @param {Number} option.device            设备标识
 * @param {Number} option.userId            用户唯一标识
 * @param {Function} callback 回调函数
 *                      error: 失败原因
 */
userCenterService.getUserPrivateCouponCode = function (option, callback) {

    userCenterServiceUtil.getUserPrivateCouponCode(option, callback);
};

/**
 * 微信用户登录(自动注册)
 *
 * @author 王俊
 * @date 2018-07-19
 *
 * @warning 此功能应由用户中心服务提供, 现考虑迁移成本, 先依赖原一键秀userUtil 实现的方法 (add by wangjun 2017-07-18)
 *
 *
 * @param {Object} option 请求参数
 * @param {Number} option.device            设备标识
 * @param {String} option.unionId           微信 unionId
 * @param {String} option.openId            微信   openId
 * @param {Number} option.accountType       微信相关的编号(如 app 微信登录: 20, xxx小程序 201)
 * @param {Object} option.wxInfo            拿到的微信信息
 * @param {Object} option.wxInfo.nickName   微信昵称
 * @param {Object} option.wxInfo.gender     微信性别
 * @param {Object} option.wxInfo.avatarUrl  微信头像
 * @param {Function} callback 回调函数
 *                      error: 失败原因
 */
userCenterService.wxLoginAndAutoRegister = function (option, callback) {
    userCenterServiceUtil.wxLoginAndAutoRegister(option, callback);
};


module.exports = userCenterService;
